﻿/**
 * Dades per als integrants
 * 
 * @author JDo
 * @version  1.0
 */
class clases.dades.apartats.ApComponents{
	private var _components:Object;
	
	/**
	 * Constructor
	 * 
	 * @param $nomSo <b>String:</b> Nom soprà
	 * @param $nomCo <b>String:</b> Nom Contraalt
	 * @param $nomTe <b>String:</b> Nom Tenor
	 * @param $nomBa <b>String:</b> Nom Baix
	 */
	public function ApComponents($nomSo:String,$nomCo:String,$nomTe:String,$nomBa:String){
		_components = new Object();
		
		_components.soprans   = new Object();
		_components.contralts = new Object();
		_components.tenors    = new Object();
		_components.baixos    = new Object();
		
		_components.soprans.nom = $nomSo;
		_components.soprans.component = new Array();
		
		_components.contralts.nom = $nomCo;
		_components.contralts.component = new Array();
		
		_components.tenors.nom = $nomTe;
		_components.tenors.component = new Array();
		
		_components.baixos.nom = $nomBa;
		_components.baixos.component = new Array();
	}
	
	/**
	 * Afegeix un component com a soprà
	 * 
	 * @param $valor <b>String:</b> Nom del component
	 */
	public function addSopra($valor:String):Void{
		_components.soprans.component.push($valor);
	}
	
	/**
	 * Afegeix un component com a contraalt
	 * 
	 * @param $valor <b>String:</b> Nom del component
	 */
	public function addContralt($valor:String):Void{
		_components.contralts.component.push($valor);
	}
	
	/**
	 * Afegeix un component com a tenor
	 * 
	 * @param $valor <b>String:</b> Nom del component
	 */
	public function addTenor($valor:String):Void{
		_components.tenors.component.push($valor);
	}
	
	/**
	 * Afegeix un component com a baix
	 * 
	 * @param $valor <b>String:</b> Nom del component
	 */
	public function addBaix($valor:String):Void{
		_components.baixos.component.push($valor);
	}
	
	/**
	 * getter dels components
	 * 
	 * @return <b>Object</b> [soprans,contralts,tenors,baixos]
	 */
	public function get components():Object{
		return _components;
	}
	
	/**
	 * @return Les dades de la clase en format String
	 */
	public function toString():String{
		return "\nnom :" + _components.soprans.nom   + " <--> soprans: "   + _components.soprans.component +
		       "\nnom :" + _components.contralts.nom + " <--> contralts: " + _components.contralts.component +
			   "\nnom :" + _components.tenors.nom    + " <--> tenors: "    + _components.tenors.component +
			   "\nnom :" + _components.baixos.nom    + " <--> baixos: "    + _components.baixos.component;
			   
	}
}